/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.servicoimpl;

import br.com.deployment.dao.LivroDao;
import br.com.deployment.entidade.registroimovel.Folha;
import br.com.deployment.entidade.registroimovel.Livro;
import br.com.deployment.interfaces.LivroDaoIn;
import br.com.deployment.servico.FolhaServico;
import br.com.deployment.servico.LivroServico;
import br.com.deployment.utilitario.Msg;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;

/**
 *
 * @author roniere
 */
@Stateless
@LocalBean
public class LivroServicoImpl implements LivroServico {

    @EJB
    LivroDaoIn livroDao;
    @EJB
    FolhaServico folhaServico;

    @Override
    public void salvar(Livro livro) {
        livroDao.save(livro);
    }

    @Override
    public Livro find(Long id) {
        return livroDao.find(id);
    }

    @Override
    public List<Livro> findAll() {
        return livroDao.findAll();
    }

    @Override
    public List<Livro> findLivro(Livro livro, Integer qtd) {
        return livroDao.findLivro(livro, qtd);
    }

    public boolean folhasFind(Livro livro, String folhas) {
        if (livro != null && folhas != null) {
            String[] folha = folhas.split("-");
            for (int i = 0; i < folha.length; i++) {

                if (!folhaServico.folhaExiste(Integer.valueOf(folha[i]), livro.getId())) {
                    Msg.messagemError("O Livro " + find(livro.getId()).getDescricao() + " não possui a página " + folha[i]);
                    return false;
                }

            }
        }
        return true;
    }

    @Override
    public Long qtdFolhaLivro(Livro livro) {
        return livroDao.qtdFolhaLivro(livro);
    }

    @Override
    public void remover(Livro livro) {
        livroDao.delete(livro);
    }

    @Override
    public List<Livro> Livros(Livro livro, Folha folha) {
        return livroDao.Livros(livro, folha);
    }

    @Override
    public void atualizar(Livro livro) {
        livroDao.update(livro);
    }

    @Override
    public List<Livro> LivrosIntervalo(Livro livro, Folha folha, int num, int num2) {
        return livroDao.LivrosIntervalo(livro, folha, num, num2);
    }

    @Override
    public Integer MenorNumero(Livro livro) {
        return livroDao.MenorNumero(livro);
    }

    @Override
    public List<Folha> findFolhas(Livro livro, Folha folha) {
        return livroDao.findFolhas(livro, folha);
    }

    @Override
    public void buscarLivro(List<Livro> lstLivros, Livro livro, Folha folha, List<Folha> folhas) {
    }

    @Override
    public List<Folha> findFolhasIntervalo(Livro livro, int num1, int num2) {
        return livroDao.findFolhasIntervalo(livro, num1, num2);
    }

    @Override
    public List<Livro> findLivroTitulo(Livro livro) {
        return livroDao.findLivroTitulo(livro);
    }

    @Override
    public List<Folha> findFolhasLivro(Livro livro) {
        return livroDao.findFolhasLivro(livro);
    }
}
